アルゴリズム Algorithms
Problem 課題
を解くために、明確に定義され,順序付けられた有限個の規則からなる集合。
問題解決の具体的手順
問題
Input 入力
を受け取り
Output 出力
として生成する計算
例
レシピ Recipe
,
楽譜
、
説明書
も
正当性 correctness
と
停止性 halting
よいアルゴリズムの条件
可読性 readability
人間が読みやすいか
? 機械(ML)が読みやすいとは?
高速性 quick
計算量 computational complexity
オーダー order notation
時間計算量 time complexity
効率性 efficiency
空間計算量 space complexity
メモリ Memory
reusability 再利用性
アルゴリズムの基本形
順次構造 sequential structure
選択構造 selection structure
反復構造 iteration structure
アルゴリズムの記述方法
人間向け?機械向け?
flowchart フローチャート
プログラミング言語 Programming Language
擬似言語 pseudo language
種類
search 探索
線形探索 Linear search
二分探索 Binary search
ハッシュ探索 hash search
Sorting ソート 整列
O(n**2)
挿入ソート Insertion sort
Bubble Sort バブルソート
O(n log n)
Quicksort クイックソート
Merge Sort マージソート
数値計算
エラトステネスの篩
ユークリッドの互除法
文字列探索
設計パラダイム
DP 動的計画法
貪欲法
Quickselect
指数オーダー
O記法というオーダーを表す記法
O(n)
個人的
GitHub.icon
KiichiSugihara/my-javascript-algorithms
参考
humanwhocodes/computer-science-in-javascript: Collection of classic computer science paradigms, algorithms, and approaches written in JavaScript.
trekhleb/javascript-algorithms: 📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
JetBrains Academy - Learn programming by building your own apps
drken - Qiita
アルゴリズムのよいまとめ書いてる
AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ - Qiita
けんちょんの競プロ精進記録